﻿#ifndef UDPCLIENT_H
#define UDPCLIENT_H

#include <QMainWindow>
#include <QUdpSocket>
#include <QLabel>
#include <QHostInfo>
#include <QHostAddress>
#include <QToolBar>
#include <QAction>

QT_BEGIN_NAMESPACE
namespace Ui { class UdpClient; }
QT_END_NAMESPACE

class UdpClient : public QMainWindow
{
    Q_OBJECT

public:
    UdpClient(QWidget *parent = nullptr);
    ~UdpClient();

    void initUi();

private:
    QString getLocalIp();

private slots:
    // 自定义槽函数
    void onSocketStateChanged(QAbstractSocket::SocketState socketState);

    // 读取Socket传入的数据
    void onSocketReadyRead();

    // 绑定端口菜单
    void onActBindPort();

    // 解除绑定
    void onActNotBindPort();

    // 清空文本框
    void onActClearText();

    // 退出程序
    void onActQuit();
    void on_btnSend_clicked();

    void on_btnMultiCastSend_clicked();

private:
    Ui::UdpClient *ui;

    // socket状态显示标签
    QLabel* labSocketState;
    QUdpSocket* udpSocket;

    QAction* actBindPort;
    QAction* actNotBindPort;
    QAction* actClearText;
    QAction* actQuit;
};
#endif // UDPCLIENT_H
